home *** CD-ROM | disk | FTP | other *** search
/ Oh!X 2001 Spring / Oh!X 2001 Spring Special CD-ROM (Japan).7z / Oh!X 2001 Spring Special CD-ROM (Japan) (Track 1).bin / PUZZLE / puz01 / fibo.c < prev    next >
C/C++ Source or Header  |  2000-02-20  |  718b  |  46 lines

  1. /*
  2.  * fibo.c : フィボナッチ関数
  3.  *
  4.  */
  5. #include <stdio.h>
  6.  
  7. #define SIZE 46
  8.  
  9. int fibo_table[SIZE];
  10.  
  11. /* 再帰呼び出し */
  12. int fibo( int n )
  13. {
  14.   if( n == 0 || n == 1 ){
  15.     return 1;
  16.   } else {
  17.     return fibo( n - 1 ) + fibo( n - 2 );
  18.   }
  19. }
  20.  
  21. /* 表計算法 */
  22. void make_fibo( void )
  23. {
  24.   int i;
  25.   fibo_table[0] = 1;
  26.   fibo_table[1] = 1;
  27.   for( i = 2; i < SIZE; i++ ){
  28.     fibo_table[i] = fibo_table[i - 1] + fibo_table[i - 2];
  29.   }
  30. }
  31.  
  32.  
  33. int main()
  34. {
  35.   int i, j;
  36.   make_fibo();
  37.   for( i = 0; i < SIZE; i++ ){
  38.     /* Pentium 166 MHz の場合、30 を超えると時間がかかる */
  39.     j = fibo( i );
  40.     printf("fibo( %d ) = %d, %d\n", i, j, fibo_table[i] );
  41.   }
  42.   return 0;
  43. }
  44.  
  45. /* end of file */
  46.